<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0) on Thu May 15 17:17:32 EDT 2008 -->
<TITLE>
TupleTupleKeyCreator (Oracle - Berkeley DB Java API)
</TITLE>

<META NAME="keywords" CONTENT="com.sleepycat.bind.tuple.TupleTupleKeyCreator class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../style.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="TupleTupleKeyCreator (Oracle - Berkeley DB Java API)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/TupleTupleKeyCreator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
<b>Berkeley DB</b><br><font size="-1"> version 4.7.25</font></EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleBinding.html" title="class in com.sleepycat.bind.tuple"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleMarshalledBinding.html" title="class in com.sleepycat.bind.tuple"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?com/sleepycat/bind/tuple/TupleTupleKeyCreator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="TupleTupleKeyCreator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
com.sleepycat.bind.tuple</FONT>
<BR>
Class TupleTupleKeyCreator</H2>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/sleepycat/bind/tuple/TupleBase.html" title="class in com.sleepycat.bind.tuple">com.sleepycat.bind.tuple.TupleBase</A>
      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.sleepycat.bind.tuple.TupleTupleKeyCreator</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/sleepycat/db/ForeignKeyNullifier.html" title="interface in com.sleepycat.db">ForeignKeyNullifier</A>, <A HREF="../../../../com/sleepycat/db/SecondaryKeyCreator.html" title="interface in com.sleepycat.db">SecondaryKeyCreator</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleMarshalledKeyCreator.html" title="class in com.sleepycat.bind.tuple">TupleTupleMarshalledKeyCreator</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>TupleTupleKeyCreator</B><DT>extends <A HREF="../../../../com/sleepycat/bind/tuple/TupleBase.html" title="class in com.sleepycat.bind.tuple">TupleBase</A><DT>implements <A HREF="../../../../com/sleepycat/db/SecondaryKeyCreator.html" title="interface in com.sleepycat.db">SecondaryKeyCreator</A>, <A HREF="../../../../com/sleepycat/db/ForeignKeyNullifier.html" title="interface in com.sleepycat.db">ForeignKeyNullifier</A></DL>
</PRE>

<P>
An abstract key creator that uses a tuple key and a tuple data entry. This
 class takes care of converting the key and data entry to/from <A HREF="../../../../com/sleepycat/bind/tuple/TupleInput.html" title="class in com.sleepycat.bind.tuple"><CODE>TupleInput</CODE></A> and <A HREF="../../../../com/sleepycat/bind/tuple/TupleOutput.html" title="class in com.sleepycat.bind.tuple"><CODE>TupleOutput</CODE></A> objects.
 The following abstract method must be implemented by a concrete subclass
 to create the index key using these objects
 <ul>
 <li> <A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleKeyCreator.html#createSecondaryKey(com.sleepycat.bind.tuple.TupleInput, com.sleepycat.bind.tuple.TupleInput, com.sleepycat.bind.tuple.TupleOutput)"><CODE>createSecondaryKey(TupleInput,TupleInput,TupleOutput)</CODE></A> </li>
 </ul>
 <p>If <A HREF="../../../../com/sleepycat/db/ForeignKeyDeleteAction.html#NULLIFY"><CODE>ForeignKeyDeleteAction.NULLIFY</CODE></A> was
 specified when opening the secondary database, the following method must be
 overridden to nullify the foreign index key.  If NULLIFY was not specified,
 this method need not be overridden.</p>
 <ul>
 <li> <A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleKeyCreator.html#nullifyForeignKey(com.sleepycat.bind.tuple.TupleInput, com.sleepycat.bind.tuple.TupleOutput)"><CODE>nullifyForeignKey(TupleInput,TupleOutput)</CODE></A> </li>
 </ul>
 <p>If <A HREF="../../../../com/sleepycat/db/ForeignKeyDeleteAction.html#NULLIFY"><CODE>ForeignKeyDeleteAction.NULLIFY</CODE></A> was
 specified when creating the secondary, this method is called when the
 entity for this foreign key is deleted.  If NULLIFY was not specified,
 this method will not be called and may always return false.</p>
<P>

<P>
<HR>

<P>

<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleKeyCreator.html#TupleTupleKeyCreator()">TupleTupleKeyCreator</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a tuple-tuple key creator.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleKeyCreator.html#createSecondaryKey(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry)">createSecondaryKey</A></B>(<A HREF="../../../../com/sleepycat/db/SecondaryDatabase.html" title="class in com.sleepycat.db">SecondaryDatabase</A>&nbsp;db,
                   <A HREF="../../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A>&nbsp;primaryKeyEntry,
                   <A HREF="../../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A>&nbsp;dataEntry,
                   <A HREF="../../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A>&nbsp;indexKeyEntry)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a secondary key entry, given a primary key and data entry.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleKeyCreator.html#createSecondaryKey(com.sleepycat.bind.tuple.TupleInput, com.sleepycat.bind.tuple.TupleInput, com.sleepycat.bind.tuple.TupleOutput)">createSecondaryKey</A></B>(<A HREF="../../../../com/sleepycat/bind/tuple/TupleInput.html" title="class in com.sleepycat.bind.tuple">TupleInput</A>&nbsp;primaryKeyInput,
                   <A HREF="../../../../com/sleepycat/bind/tuple/TupleInput.html" title="class in com.sleepycat.bind.tuple">TupleInput</A>&nbsp;dataInput,
                   <A HREF="../../../../com/sleepycat/bind/tuple/TupleOutput.html" title="class in com.sleepycat.bind.tuple">TupleOutput</A>&nbsp;indexKeyOutput)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates the index key from primary key tuple and data tuple.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleKeyCreator.html#nullifyForeignKey(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry)">nullifyForeignKey</A></B>(<A HREF="../../../../com/sleepycat/db/SecondaryDatabase.html" title="class in com.sleepycat.db">SecondaryDatabase</A>&nbsp;db,
                  <A HREF="../../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A>&nbsp;dataEntry)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleKeyCreator.html#nullifyForeignKey(com.sleepycat.bind.tuple.TupleInput, com.sleepycat.bind.tuple.TupleOutput)">nullifyForeignKey</A></B>(<A HREF="../../../../com/sleepycat/bind/tuple/TupleInput.html" title="class in com.sleepycat.bind.tuple">TupleInput</A>&nbsp;dataInput,
                  <A HREF="../../../../com/sleepycat/bind/tuple/TupleOutput.html" title="class in com.sleepycat.bind.tuple">TupleOutput</A>&nbsp;dataOutput)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears the index key in the tuple data entry.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_com.sleepycat.bind.tuple.TupleBase"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class com.sleepycat.bind.tuple.<A HREF="../../../../com/sleepycat/bind/tuple/TupleBase.html" title="class in com.sleepycat.bind.tuple">TupleBase</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../com/sleepycat/bind/tuple/TupleBase.html#entryToInput(com.sleepycat.db.DatabaseEntry)">entryToInput</A>, <A HREF="../../../../com/sleepycat/bind/tuple/TupleBase.html#getTupleBufferSize()">getTupleBufferSize</A>, <A HREF="../../../../com/sleepycat/bind/tuple/TupleBase.html#getTupleOutput(java.lang.Object)">getTupleOutput</A>, <A HREF="../../../../com/sleepycat/bind/tuple/TupleBase.html#inputToEntry(com.sleepycat.bind.tuple.TupleInput, com.sleepycat.db.DatabaseEntry)">inputToEntry</A>, <A HREF="../../../../com/sleepycat/bind/tuple/TupleBase.html#newOutput()">newOutput</A>, <A HREF="../../../../com/sleepycat/bind/tuple/TupleBase.html#newOutput(byte[])">newOutput</A>, <A HREF="../../../../com/sleepycat/bind/tuple/TupleBase.html#outputToEntry(com.sleepycat.bind.tuple.TupleOutput, com.sleepycat.db.DatabaseEntry)">outputToEntry</A>, <A HREF="../../../../com/sleepycat/bind/tuple/TupleBase.html#setTupleBufferSize(int)">setTupleBufferSize</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="TupleTupleKeyCreator()"><!-- --></A><H3>
TupleTupleKeyCreator</H3>
<PRE>
public <B>TupleTupleKeyCreator</B>()</PRE>
<DL>
<DD>Creates a tuple-tuple key creator.
<P>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="createSecondaryKey(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry)"><!-- --></A><H3>
createSecondaryKey</H3>
<PRE>
public boolean <B>createSecondaryKey</B>(<A HREF="../../../../com/sleepycat/db/SecondaryDatabase.html" title="class in com.sleepycat.db">SecondaryDatabase</A>&nbsp;db,
                                  <A HREF="../../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A>&nbsp;primaryKeyEntry,
                                  <A HREF="../../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A>&nbsp;dataEntry,
                                  <A HREF="../../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A>&nbsp;indexKeyEntry)
                           throws <A HREF="../../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sleepycat/db/SecondaryKeyCreator.html#createSecondaryKey(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry)">SecondaryKeyCreator</A></CODE></B></DD>
<DD>Creates a secondary key entry, given a primary key and data entry.
    <p>
    A secondary key may be derived from the primary key, primary data, or a
    combination of the primary key and data.  For secondary keys that are
    optional, the key creator method may return false and the key/data pair
    will not be indexed.  To ensure the integrity of a secondary database the
    key creator method must always return the same result for a given set of
    input parameters.
    <p>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/db/SecondaryKeyCreator.html#createSecondaryKey(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry)">createSecondaryKey</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/db/SecondaryKeyCreator.html" title="interface in com.sleepycat.db">SecondaryKeyCreator</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>db</CODE> - the database to which the secondary key will be added.
    This parameter is passed for informational purposes but is not commonly
    used.
    <p><DD><CODE>primaryKeyEntry</CODE> - the primary key entry.  This parameter must not be modified
    by this method.
    <p><DD><CODE>dataEntry</CODE> - the primary data entry.  This parameter must not be modified
    by this method.
    <p><DD><CODE>indexKeyEntry</CODE> - the secondary key created by this method.
    <p>
<DT><B>Returns:</B><DD>true if a key was created, or false to indicate that the key is
    not present.
    <p>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE> - if an error occurs attempting to create the
    secondary key.</DL>
</DD>
</DL>
<HR>

<A NAME="nullifyForeignKey(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry)"><!-- --></A><H3>
nullifyForeignKey</H3>
<PRE>
public boolean <B>nullifyForeignKey</B>(<A HREF="../../../../com/sleepycat/db/SecondaryDatabase.html" title="class in com.sleepycat.db">SecondaryDatabase</A>&nbsp;db,
                                 <A HREF="../../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A>&nbsp;dataEntry)
                          throws <A HREF="../../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/db/ForeignKeyNullifier.html#nullifyForeignKey(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry)">nullifyForeignKey</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/db/ForeignKeyNullifier.html" title="interface in com.sleepycat.db">ForeignKeyNullifier</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="createSecondaryKey(com.sleepycat.bind.tuple.TupleInput, com.sleepycat.bind.tuple.TupleInput, com.sleepycat.bind.tuple.TupleOutput)"><!-- --></A><H3>
createSecondaryKey</H3>
<PRE>
public abstract boolean <B>createSecondaryKey</B>(<A HREF="../../../../com/sleepycat/bind/tuple/TupleInput.html" title="class in com.sleepycat.bind.tuple">TupleInput</A>&nbsp;primaryKeyInput,
                                           <A HREF="../../../../com/sleepycat/bind/tuple/TupleInput.html" title="class in com.sleepycat.bind.tuple">TupleInput</A>&nbsp;dataInput,
                                           <A HREF="../../../../com/sleepycat/bind/tuple/TupleOutput.html" title="class in com.sleepycat.bind.tuple">TupleOutput</A>&nbsp;indexKeyOutput)</PRE>
<DL>
<DD>Creates the index key from primary key tuple and data tuple.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>primaryKeyInput</CODE> - is the <A HREF="../../../../com/sleepycat/bind/tuple/TupleInput.html" title="class in com.sleepycat.bind.tuple"><CODE>TupleInput</CODE></A> for the primary key
 entry.<DD><CODE>dataInput</CODE> - is the <A HREF="../../../../com/sleepycat/bind/tuple/TupleInput.html" title="class in com.sleepycat.bind.tuple"><CODE>TupleInput</CODE></A> for the data entry.<DD><CODE>indexKeyOutput</CODE> - is the destination index key tuple.
<DT><B>Returns:</B><DD>true if a key was created, or false to indicate that the key is
 not present.</DL>
</DD>
</DL>
<HR>

<A NAME="nullifyForeignKey(com.sleepycat.bind.tuple.TupleInput, com.sleepycat.bind.tuple.TupleOutput)"><!-- --></A><H3>
nullifyForeignKey</H3>
<PRE>
public boolean <B>nullifyForeignKey</B>(<A HREF="../../../../com/sleepycat/bind/tuple/TupleInput.html" title="class in com.sleepycat.bind.tuple">TupleInput</A>&nbsp;dataInput,
                                 <A HREF="../../../../com/sleepycat/bind/tuple/TupleOutput.html" title="class in com.sleepycat.bind.tuple">TupleOutput</A>&nbsp;dataOutput)</PRE>
<DL>
<DD>Clears the index key in the tuple data entry.  The dataInput should be
 read and then written to the dataOutput, clearing the index key in the
 process.

 <p>The secondary key should be output or removed by this method such
 that <A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleKeyCreator.html#createSecondaryKey(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry)"><CODE>createSecondaryKey(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry)</CODE></A> will return false.  Other fields in the
 data object should remain unchanged.</p>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>dataInput</CODE> - is the <A HREF="../../../../com/sleepycat/bind/tuple/TupleInput.html" title="class in com.sleepycat.bind.tuple"><CODE>TupleInput</CODE></A> for the data entry.<DD><CODE>dataOutput</CODE> - is the destination <A HREF="../../../../com/sleepycat/bind/tuple/TupleOutput.html" title="class in com.sleepycat.bind.tuple"><CODE>TupleOutput</CODE></A>.
<DT><B>Returns:</B><DD>true if the key was cleared, or false to indicate that the key
 is not present and no change is necessary.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/TupleTupleKeyCreator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
<b>Berkeley DB</b><br><font size="-1"> version 4.7.25</font></EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleBinding.html" title="class in com.sleepycat.bind.tuple"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../com/sleepycat/bind/tuple/TupleTupleMarshalledBinding.html" title="class in com.sleepycat.bind.tuple"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?com/sleepycat/bind/tuple/TupleTupleKeyCreator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="TupleTupleKeyCreator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
<font size=1>Copyright (c) 1996,2008 Oracle.  All rights reserved.</font>
</BODY>
</HTML>
